6ec583f3a2e34fc88118f6b850b032becd3b179d,src/main/java/org/roaringbitmap/buffer/MutableRoaringArray.java,MutableRoaringArray,getContainer,#number#,302
Before Change
// involves a binary search
@Override
public MappeableContainer getContainer(short x) {
final int i = this.binarySearch(0, size, x);
if (i < 0) {
return null;
}
After Change
int i;
// the rationale here is that we can often get lucky and
// avoid a binary search:
if((BufferUtil.toIntUnsigned(x) < size)
&& (this.keys[BufferUtil.toIntUnsigned(x)] == x)) {
i = BufferUtil.toIntUnsigned(x);
} else {
i = this.binarySearch(0, size, x);
if (i < 0) {
return null;
}